--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Commit e848306d6dcc47ae1c2be89e4489102ab5a98985
Parents : 6dda5b8
Author : Sudo-Ivan <ivan@quad4.io>
Signature : Signature validation error
Date : 2026-01-01T22:44:30-06:00
feat(map): add cancel export button and functionality to MapPage component
Changes
1 files changed, 21 insertions(+), 0 deletions(-)
Diff
diff --git a/meshchatx/src/frontend/components/map/MapPage.vue b/meshchatx/src/frontend/components/map/MapPage.vue
index c8f3b2e2..cedf028b 100644
--- a/meshchatx/src/frontend/components/map/MapPage.vue
+++ b/meshchatx/src/frontend/components/map/MapPage.vue
@@ -321,6 +321,13 @@
>
<MaterialDesignIcon icon-name="close" class="size-4" />
</button>
+ <button
+ v-else
+ class="text-xs font-bold text-red-500 hover:text-red-600 uppercase tracking-tighter"
+ @click="cancelActiveExport"
+ >
+ {{ $t("common.cancel") }}
+ </button>
</div>
<div v-if="exportStatus.status !== 'completed' && exportStatus.status !== 'failed'">
@@ -1124,6 +1131,20 @@ export default {
this.selectedBbox = null;
this.isExportMode = false;
},
+ async cancelActiveExport() {
+ if (!this.exportId) {
+ this.exportStatus = null;
+ return;
+ }
+ try {
+ await window.axios.delete(`/api/v1/map/export/${this.exportId}`);
+ this.exportStatus = null;
+ this.exportId = null;
+ ToastUtils.success("Export cancelled");
+ } catch {
+ ToastUtils.error("Failed to cancel export");
+ }
+ },
async startExport() {
if (!this.selectedBbox) return;
this.isExporting = true;
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────